MongoDB তে Authentication এবং Authorization দুটি অত্যন্ত গুরুত্বপূর্ণ নিরাপত্তা ফিচার, যা ডেটাবেসের অ্যাক্সেস এবং ডেটা সুরক্ষা নিশ্চিত করে। যদিও Authentication এবং Authorization দুটি আলাদা প্রক্রিয়া, এগুলি একসাথে কাজ করে MongoDB এর নিরাপত্তা গঠন করতে। নিচে MongoDB তে Authentication এবং Authorization এর কার্যপদ্ধতি বিস্তারিতভাবে আলোচনা করা হলো।
Authentication
Authentication হল একটি প্রক্রিয়া যার মাধ্যমে MongoDB ডেটাবেস সার্ভারে এক্সেস পাওয়ার জন্য ব্যবহারকারীর পরিচয় যাচাই করা হয়। MongoDB তে Authentication নিশ্চিত করে যে শুধুমাত্র অনুমোদিত ব্যবহারকারীরাই ডেটাবেসে অ্যাক্সেস করতে পারে।
MongoDB Authentication পদ্ধতি
MongoDB তে Authentication জন্য বিভিন্ন পদ্ধতি রয়েছে:
Username and Password Authentication: MongoDB ডেটাবেসে একজন ব্যবহারকারী নাম এবং পাসওয়ার্ডের মাধ্যমে লগ ইন করতে পারেন। ডেটাবেসে একটি ব্যবহারকারী তৈরি করতে হয় এবং সেখান থেকে পাসওয়ার্ড প্রদান করতে হয়।
use admin db.createUser({ user: "myUserAdmin", pwd: "abc123", // Password roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })- LDAP Authentication: MongoDB LDAP (Lightweight Directory Access Protocol) প্রটোকল ব্যবহার করে অ্যাক্সেস কন্ট্রোল করতে পারে। MongoDB তে LDAP Authentication কনফিগার করা হলে, ডেটাবেস ব্যবহারকারী তার LDAP সার্ভারে লগ ইন করা ব্যবহারকারীর পরিচয় যাচাই করতে পারেন।
- X.509 Certificate Authentication: MongoDB X.509 সার্টিফিকেট ব্যবহার করে সুরক্ষিত অ্যাক্সেস প্রমাণীকরণ সমর্থন করে। এই পদ্ধতিতে ব্যবহারকারী এবং MongoDB সার্ভারের মধ্যে TLS (Transport Layer Security) শংসাপত্র ব্যবহার করা হয়।
- Kerberos Authentication: MongoDB Kerberos ভিত্তিক Authentication সমর্থন করে। এটি একটি নিরাপদ, সেন্ট্রালাইজড সিস্টেম যেখানে একবার লগ ইন করার পর ব্যবহারকারীকে বিভিন্ন সার্ভিসে প্রবেশের অনুমতি দেয়া হয়।
Authentication Enablement
MongoDB তে Authentication সক্রিয় করতে, MongoDB কনফিগারেশন ফাইল (mongod.conf) এ security বিভাগে authorization প্যারামিটার ব্যবহার করে enabled সেট করতে হয়।
security:
authorization: "enabled"
এভাবে সেট করা হলে, MongoDB ডেটাবেসে কেবলমাত্র Authentication করা ব্যবহারকারীরাই লগ ইন করতে পারবে।
Authorization
Authorization হল একটি প্রক্রিয়া যার মাধ্যমে নির্ধারিত করা হয়, কোন ব্যবহারকারী বা রোল কোন অ্যাক্সেস অনুমতি পাবে। MongoDB তে Authorization কনফিগার করার মাধ্যমে আপনি নির্দিষ্ট রোলের উপর নির্ভর করে ব্যবহারকারীর জন্য বিশেষ অ্যাক্সেস কন্ট্রোল সেট করতে পারেন।
MongoDB Authorization Model
MongoDB তে Role-Based Access Control (RBAC) ব্যবহার করা হয়, যেখানে নির্দিষ্ট রোলের জন্য বিভিন্ন অনুমতি দেওয়া হয়। এটি ব্যবহারকারীদের কেবলমাত্র সেই কাজগুলো করতে দেয় যা তাদের রোলের অধিকার।
MongoDB রোলস
MongoDB তে পূর্বনির্ধারিত কিছু রোল রয়েছে, যেমন:
- read: শুধুমাত্র ডেটা পড়ার অনুমতি দেয়।
- readWrite: ডেটা পড়া এবং লেখা (insert, update, delete) করার অনুমতি দেয়।
- dbAdmin: ডেটাবেসের জন্য অ্যাডমিনিস্ট্রেটিভ কার্যক্রম (ইনডেক্স তৈরি, কনফিগারেশন পরিবর্তন) করার অনুমতি দেয়।
- userAdmin: ব্যবহারকারী তৈরি, মুছে ফেলা এবং রোল অ্যাসাইন করার অনুমতি দেয়।
- root: সমস্ত রোল এবং কার্যক্রমের উপর পূর্ণ নিয়ন্ত্রণ দেয়।
MongoDB রোল কাস্টমাইজেশন
MongoDB তে আপনি কাস্টম রোলও তৈরি করতে পারেন। উদাহরণস্বরূপ:
use admin
db.createRole({
role: "readAndWriteRole",
privileges: [
{ resource: { db: "myDatabase", collection: "" }, actions: [ "find", "insert", "update", "remove" ] }
],
roles: []
})
এখানে একটি কাস্টম রোল তৈরি করা হয়েছে, যার মাধ্যমে ব্যবহারকারী ডেটাবেসের মধ্যে ডেটা পড়া, লেখা, আপডেট এবং মুছতে পারবে।
MongoDB রোল অ্যাসাইনমেন্ট
ব্যবহারকারীর জন্য একটি রোল অ্যাসাইন করতে:
db.createUser({
user: "myUser",
pwd: "password123",
roles: [{ role: "readWrite", db: "myDatabase" }]
})
এটি myUser নামক ব্যবহারকারীকে myDatabase ডেটাবেসের জন্য readWrite রোল অ্যাসাইন করবে, যার মাধ্যমে সে ওই ডেটাবেসে ডেটা পড়তে এবং লিখতে পারবে।
Authentication এবং Authorization এর মধ্যে পার্থক্য
- Authentication: ব্যবহারকারীর পরিচয় যাচাই করার প্রক্রিয়া। এটি নিশ্চিত করে যে ব্যবহৃত পাসওয়ার্ড বা টোকেন সঠিক কিনা এবং ব্যবহারকারী সিস্টেমে প্রবেশের জন্য অনুমোদিত কিনা।
- Authorization: একবার একটি ব্যবহারকারী সফলভাবে অটেনটিকেট হয়ে গেলে, Authorization নিশ্চিত করে যে সে কী ধরনের অ্যাক্সেস (যেমন: ডেটা পড়া, লেখা, ডিলিট) পাবেন।
MongoDB তে Authentication এবং Authorization কনফিগারেশন
MongoDB তে Authentication এবং Authorization একসাথে ব্যবহার করলে, এটি শক্তিশালী নিরাপত্তা ব্যবস্থা তৈরি করতে সহায়ক হয়। সাধারণভাবে, প্রথমে Authentication সক্রিয় করতে হবে এবং তারপর ব্যবহারকারী বা রোলের উপর ভিত্তি করে Authorization কনফিগার করতে হবে।
Authentication সক্রিয় করতে:
mongod.confফাইলেরsecurity.authorizationপ্যারামিটারenabledকরে MongoDB তে Authentication চালু করুন।security: authorization: "enabled"- Authorization কনফিগার করার জন্য ব্যবহারকারীদের রোল এবং অনুমতি নির্ধারণ করুন।
সারাংশ
MongoDB তে Authentication এবং Authorization ডেটাবেসের নিরাপত্তা ব্যবস্থাকে শক্তিশালী করে। Authentication ব্যবহারকারীর পরিচয় যাচাই করতে ব্যবহৃত হয়, যেখানে Authorization ব্যবহারকারীদের অ্যাক্সেস অনুমতি নির্ধারণ করে। MongoDB তে Role-Based Access Control (RBAC) মডেল ব্যবহৃত হয়, যার মাধ্যমে ব্যবহারকারী নির্দিষ্ট রোলের অধীনে ডেটাবেসে সীমিত কাজ করতে পারে। Authentication এবং Authorization এর সঠিক কনফিগারেশন MongoDB ডেটাবেসে নিরাপদ অ্যাক্সেস এবং কার্যকরী কন্ট্রোল নিশ্চিত করে।
Read more